Customer support system and method therefor

ABSTRACT

A method of routing a voice communication from a web page to one of a plurality of queues includes determining whether a user has previously visited the web page. If the user has not previously visited the web page, the web page is displayed without a button to initiate the voice communication. If the user has previously visited the web page, the button is displayed.

CROSS REFERENCE TO RELATED APPLICATIONS

Related subject matter is contained in the following co-pendingapplications:

U.S. application Ser. No. 13/164,133, filed Jun. 20, 2011, entitled“System and Method for Device Specific Customer Support,” invented byOliver Ilagan, and assigned to the assignee hereof.

U.S. application Ser. No. 13/164,135, filed Jun. 20, 2011, entitled“System and Method for Routing Customer Support Softphone Call,”invented by Oliver Ilagan, and assigned to the assignee hereof.

FIELD OF THE DISCLOSURE

This disclosure generally relates to information handling systems, andmore particularly relates to a system and a method for providingcustomer support using an information handling system.

BACKGROUND

As the value and use of information continues to increase, individualsand businesses seek additional ways to process and store information.One option available to users is information handling systems. Aninformation handling system generally processes, compiles, stores,and/or communicates information or data for business, personal, or otherpurposes thereby allowing users to take advantage of the value of theinformation. Because technology and information handling needs andrequirements vary between different users or applications, informationhandling systems may also vary regarding what information is handled,how the information is handled, how much information is processed,stored, or communicated, and how quickly and efficiently the informationmay be processed, stored, or communicated. The variations in informationhandling systems allow for information handling systems to be general orconfigured for a specific user or specific use such as financialtransaction processing, airline reservations, enterprise data storage,or global communications. In addition, information handling systems mayinclude a variety of hardware and software components that may beconfigured to process, store, and communicate information and mayinclude one or more computer systems, data storage systems, andnetworking systems. Information handling systems and associated softwareapplications play a central role in nearly every aspect of commerce,from research and development to sales and marketing.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments incorporating teachings of the present disclosure are shownand described with respect to the drawings presented herein, in which:

FIG. 1 is a block diagram illustrating a system for providing customersupport using an information handling system in accordance with aspecific embodiment of the present disclosure;

FIG. 2 illustrates a display of the information handling system of FIG.1 showing another specific embodiment of the present disclosure;

FIG. 3 illustrates the display showing another specific embodiment ofthe present disclosure;

FIG. 4 is a table illustrating information that the system of FIG. 1 canuse to select an appropriate service representative queue in a specificembodiment of the present disclosure;

FIG. 5 is a flow diagram illustrating a method for providing softphonebased customer support in accordance with a specific embodiment of thepresent disclosure;

FIG. 6 is a flow diagram illustrating another method for providingsoftphone based customer support in accordance with a specificembodiment of the present disclosure;

FIG. 7 is a flow diagram illustrating still another method for providingsoftphone based customer support in accordance with a specificembodiment of the present disclosure;

FIG. 8 is a flow diagram illustrating a method for conditionallyproviding a customer with an opportunity to initiate a softphone callwith a customer support representative in accordance with a specificembodiment of the present disclosure;

FIG. 9 is a flow diagram illustrating a method for assigning defaultvalues to a set of routing variables in accordance with a specificembodiment of the present disclosure; and

FIG. 10 is a block diagram illustrating an information handling systemcapable of administering each of the specific embodiments of the presentdisclosure.

The use of the same reference symbols in different drawings indicatessimilar or identical items.

DETAILED DESCRIPTION

The following description in combination with the Figures is provided toassist in understanding the teachings disclosed herein. The followingdiscussion will focus on specific implementations and embodiments of theteachings. This focus is provided to assist in describing the teachingsand should not be interpreted as a limitation on the scope orapplicability of the teachings. However, other teachings can certainlybe utilized in this application.

FIG. 1 shows a system 100 for providing customer support using aninformation handling system in accordance with the present disclosure.System 100 includes an information handling system such as a personalcomputer 110, connected via a network such as the Internet to a server120. The personal computer 110 is configured to provide an Internet webbrowser 111 with which a user of the personal computer can navigate toand interact with a web site served by the web server 120. The webbrowser 111 is also configured to display a softphone application shownin FIG. 2. The web server 120 includes a voice communication routingsystem 121 that is configured to route softphone calls initiated byusers of the personal computers 110 to a respective preferred one ofcustomer support representative queues 130. The voice communicationrouting system 121 is configured to determine strategic informationabout the user who is navigating the web site provided by the web server120. In particular, the voice communication routing system can determineaspects of the user's intentions and route the user to an appropriatecustomer support representative queue based on the acquired information.Moreover, some or all of the information that is used to select thepreferred representative queue can be automatically determined by thevoice communication routing system 121 without directly querying theuser for specific information. Information handling system 110 caninclude a cellular smartphone, a personal digital assistance (PDA), atablet computer, an e-book, or another type of device such as anInternet-connected device. The information handling system can alsoinclude a television device operable to communicate with a server, suchas the web server 120.

Systems and methods disclosed herein can improve the quality of customerservice and thereby improve the customer's experience when interactingwith a business. In an embodiment, Voice over Internet Protocol (VoIP)technology combined with a client based softphone application allows acustomer to speak with a customer support representative using theirpersonal computer or another type of device. In particular, a customer'scall can be routed to a preferred customer support representative queuebased fully or in part on information derived automatically by a voicecommunication routing system. In an embodiment, the interest or intentof a customer may be automatically derived based on a particular websitepage to which the customer has navigated. In another embodiment,customer or product information can be obtained from the customer'scomputer system and an appropriate customer service representative queuecan be selected based on this information. In still another embodiment,a customer who is browsing a web page may be conditionally presentedwith a graphical “Call Now” button based on information acquired by thevoice communication routing system 121. For example, display of a CallNow button can be suppressed until sufficient information about thecustomer's intent has been determined. In response to pressing the CallNow button, the softphone application can be launched at the customer'sinformation handling system to allow the customer to speak directly witha support representative automatically selected by the voicecommunication routing system 121. While the systems and techniquesdisclosed herein are ideally suited for supporting interactions betweenan organization and its current or prospective customers, they can beapplied equally well to any organization or individual wishing toprovide access to a live support staff. For simplicity, these techniquesare described in the context of a technology product supply companyproviding call center customer support services.

The voice communication routing system 121 disclosed herein isconfigured to route calls from individuals to specific supportrepresentative queues or support personnel based on a variety of routingcriteria. The number and scope of the specific criteria can be selectedbased on the type of organization offering the customer support, thetype of product or service being supported, the type of customer, andthe like. For example, the routing system 121 can determine that acustomer possesses a service agreement, a warranty, and the like, androute the call accordingly. In another embodiment, a call can be routedto a service queue having escalated priority based on informationdetermined by the routing system 121. For example, queues providingspecialized or premium support capabilities can be selected based on acustomer's sales volume, account balance, contractual obligations, andthe like. Routing criteria can be represented by one or more routingvariables. In an embodiment, routing variables include a variable nameand one or more values that can be exclusively associated with thevariable. For example, a variable name may be “customer-type,” and thecustomer-type variable name can be associated with values including“business,” “consumer,” “government,” and the like. In addition, eachvariable may include a default value, and may further include an “unset”value. In an embodiment, a variable name and a corresponding value canbe stored in the form of a name-value pair. For example, the name-valuepair “customer-type=consumer” indicates that the variable“customer-type” is associated with the value “consumer.” In anembodiment, the voice communication routing system can route softphonecalls to a preferred support representative queue based on one or morename-value pairs.

FIG. 2 shows a web page 210 displayed by the web browser 111 at thepersonal computer 110 of FIG. 1 in accordance with a specific embodimentof the present disclosure. Browser 111 displays a web page specified bya Universal Resource Locator (URL) 215. The web page 210 is similar to aconventional customer support page, providing customer support telephonenumbers corresponding to various products or services. In addition, theweb page 210 includes Call Now buttons 220, 230, and 240. In anembodiment, a softphone application or applet can be launched inresponse to the user selecting one of the Call Now buttons. A softphoneis a software application for making telephone calls over the Internet.If the voice communication routing system 121 has previously determineda sufficient amount of information to route the user's call to a desiredcustomer support representative queue, the softphone call can beinitiated immediately and the user can begin conversing with arepresentative that is most qualified to provide the identified support.

FIG. 3 shows a web page 310 displaying a softphone 320 in accordancewith a specific embodiment of the present disclosure. Softphone 320 islaunched in response to selection of a Call Now button, such as the CallNow button 220 of FIG. 2. The softphone 320 can be configured to operatewith a microphone 330 and a speaker or a headset 340 that is connectedto the customer's personal data device. Alternatively, the softphoneapplication 320 can be configured to operate with a Universal Serial Bus(USB) compliant phone-like appliance that is connected to the computervia a USB interface, or another type of speaker/microphone device. In anembodiment, the softphone 320 user interface includes a numeric keypad321 similar to that present on a conventional telephone. The userinterface may include additional display items to control and configurethe smartphone application, such as a volume control 322 and an End Callbutton 323. In the event that the voice communication routing system hasnot yet compiled sufficient information concerning the user's intent,the system can solicit further information from the user. For example,an Interactive Voice Response (IVR) system may request additionalinformation from the user, posing questions to which the user mayrespond by speaking into the microphone 330 or by using the numerickeypad 321. Once the system has gathered sufficient information, theuser's call can be routed to the most appropriate service representativequeue.

In an embodiment the softphone 320 can be displayed within a new browserwindow for URL 315, as shown in FIG. 3. In another embodiment, thesoftphone 320 can be an applet displayed at a dedicated windowautonomous from the browser, such as a pop-up window. In still anotherembodiment, the softphone 320 can be displayed at the originallydisplayed web page 210. Furthermore, additional or intermediate pagescan be displayed prior to establishing a call. For example, one or morepages can be displayed for the purpose of installing and configuringsoftware, acquiring additional information from the customer, validatingcollected customer information, and the like.

Prior to initiating the call to customer service, the voicecommunication routing system 121 can determine whether the user'scomputer is properly configured to support the softphone application.For example, the routing system can determine whether the user'scomputer includes a prerequisite microphone and headphone/speakerequipment. In addition, the routing system can determine if the othersoftware needed to implement the softphone application is installed andproperly configured. For example, the softphone application may utilizeFlash™ or Java™ software, which may need to be downloaded, installed,and configured at the user's computer. In an embodiment, informationhandling system can include integrated or pre-installed software, suchas HTML5 or another device specific software application that isconfigurable to support a smartphone application. Configuration of thesoftphone application may include adjusting the volume of sound providedto the user's headphones, adjusting gain (amplification) applied tosignals received at the user's microphone, and the like. One skilled inthe art will appreciate that the softphone application 320 can beimplemented using another application program or protocol that supportsvoice communication. For example, an information handling system cansupport one or more standard or proprietary device specific softwareapplications, including operating systems, application programminginterfaces, and the like. Furthermore, the web page 210 and the web page310 can represent another type of display interface capable ofdisplaying a Call Now button and executing a softphone application. Forexample, a television device can display a Call Now button and provide asoftphone application.

FIG. 4 shows examples of information that the voice communicationrouting system 121 of FIG. 1 can use to select an appropriate servicerepresentative queue in a specific embodiment of the present disclosure.Table 400 includes a first column listing routing variables (variablenames) and a second column listing unique values that can be associatedwith each corresponding routing variable. For example, row 401 includesa variable name “Unique Identifier,” which may be associated with afirst value “###” or a second value “Unset.” An organization may utilizea Unique Identifier number to associate a customer, account, product, ora specific individual device with information that the voicecommunication routing system 121 can use to select a preferred recipientfor a call. For example, a computer manufacturing company can assign aUnique Identifier, such as a serial number, to each computer orcomponent thereof that is sold. The company can maintain an informationdatabase that associates the Unique Identifier with the identity of thepurchaser of the item, hardware or software configuration of the item,support history associated with the purchaser, and the like. Theinformation associated with the Unique Identifier can be used to guidethe selection of a service representative or queue that is bestqualified to provide support for the specific product, and some or allof the information can be provided to the customer supportrepresentative automatically by the call routing system so that therepresentative can quickly address the customer's request. If the UniqueIdentifier routing variable is not known or is otherwise not applicable,the variable may be assigned the value of Unset.

An organization may chose to organize support representative personnelbased on their particular expertise. A customer's call can be routed toan appropriate service representative queue based on informationcollected by the routing system 121. In other words, the routing system121 can classify a caller based on one or more parameters. For example,row 402 at table 400 includes a variable name “Caller Type,” which maybe associated with one of a set of values including “Business,”“Consumer,” or “Unset.” The routing system 121 can determine a value tobe associated with the Caller Type variable based on the particular webpage to which a user has navigated, based on a menu item selected by auser, in response to a prompt displayed at a web page, based on a UniqueIdentifier, or by another method. If the user type has not yet beendetermined, a value of Unset may be assigned to the Caller Type variablename. In an embodiment, each variable name can be associated with adefault value that can be used to route a call. For example, if theCaller Type has not been determined (value is Unset), the routing system121 can be configured to categorize the user as a consumer based on adefault value assigned to the variable Caller Type, and route the callaccordingly.

Another criterion that an organization may find useful for routingcustomer support calls is a type of product. Row 403 includes a routingvariable “Product,” which can be assigned a value of “Desktop PC,”“Notebook PC,” “Television,” or “Unset.” The Product routing variablecan be automatically assigned a value based on the web page currentlydisplayed by the user's web browser, based on the user's navigationhistory, based on a browser cookie, based on other information, or avalue can be determined based on a response by the user to a prompt. Asoftphone call can be routed to an appropriate representative queuebased on the value associated with the Product variable. As describedabove, the Product variable name can be assigned a value of Unset toindicate that the intent of the user has not yet been determined, inwhich case a call can be routed based on a default value. For example, acall may be routed to a service representative responsible for DesktopPC devices if the value of the Product routing variable is Unset.

Row 404 at table 400 includes a routing variable “Issue Category,” whichcan be assigned a value of “Sales,” “Lease,” “Order Status,” or “Unset.”Row 405 includes a routing variable “Region,” which can be assigned avalue of “North America,” “Canada,” “European Union,” or “Unset.” Thenumber of routing variables and the number of corresponding values thatare supported by a particular routing system can vary based on the sizeof the organization, the degree of specialization required of a servicerepresentative, or based on other factors. The routing variables andvalues included at the table 400 are merely examples of criteria thatcan be evaluated to advantageously route a softphone call to an optimalservice representative queue. For example, a routing variable “AgentExtension” can be assigned a value indicating a telephone number of aspecific service representative, such as a representative that has hadprevious interaction with a customer, and a call can be routed with theAgent Extension variable heavily or exclusively weighted. The likelihoodthat a support representative can promptly address a customer's needsmay be increased if the customer's intent can be determined with greaterprecision. Furthermore, a customer's satisfaction with the service maybe improved if the call can be routed to an appropriate servicerepresentative queue with minimal delay and with minimal prompting foradditional customer information. Accordingly, the voice communicationrouting system 121 attempts to automatically determine information abouta user's intent without directly querying the user for that information.

The routing system 121 may determine other information about a user thatis not specifically used to route a call to an appropriate servicerepresentative queue, but can nonetheless be used by a supportrepresentative to better serve a customer. This information can bemaintained as variable names having corresponding values. For example, avariable “Customer Name” can be assigned a value that is the name of thecustomer, and this information can be forwarded to the customer supportrepresentative when a call is initiated. Additional supplementalinformation can include a telephone number associated with the customerplacing the softphone call, prior service records associated with thecustomer, account information, diagnostic information obtained from thecustomer's device or from business records, and the like. In anembodiment, a Unique Identifier associated with a caller can be used toretrieve information about the caller or a specific device, and theinformation can be forwarded to a service representative.

In an embodiment, some or all of the routing variables and additionalinformation can be forwarded to the customer support representative as astring of name-value pairs. For example, the routing system 121 canassemble an information string:

Unique Identifier=12345& Caller Type=Business&Product=Unset

The information string can be provided to a selected servicerepresentative and the information can be formatted and displayed forconvenient reference by the representative. The information string caninclude some or all of the routing variables and some or all of theinformation variables that are maintained by the routing system 121. Inan embodiment, the name-value information string can be transmitted fromone server, such as the web server 120 of FIG. 1, to another server thatis responsible for facilitating routing of calls by appending theinformation string to a URL using HTTP POST protocol. In anotherembodiment, some or all of the routing information and additionalinformation can be stored at a database for later retrieval.

FIG. 5 shows how a user can speak with a customer support representativeusing a softphone application in accordance with a specific embodimentof the present disclosure. A method 500 begins at block 501 where a userdirects their web browser to a web page hosted by a company of interestto the user. The flow proceeds to block 502 where the user navigates toa particular web page using hyperlinks, menu options, or the like. Theflow proceeds to block 503 where the user clicks on a Call Now button.The flow proceeds to block 504 where the user can provide additionalinformation about the type of service that they desire. In anembodiment, a call routing system such as the voice communicationrouting system 121 of FIG. 1, may have already determined enoughinformation about the user's intent to route the call to an appropriateservice representative queue and therefore additional information is notrequired.

The flow proceeds to block 505 where voice communication applicationsoftware is installed and configured at the user's computer if such anapplication is not already present. In addition, the website softwarecan be configured to verify that the user's computer is equipped with amicrophone and speakers or headphones, and to assist the user withcalibrating their sound parameters such as speaker volume and microphonegain. For example, a website software application can request that theuser speak into their microphone and to adjust a speaker volume using aslider displayed at the webpage. Once the softphone application isproperly configured, the user can click on a Call button, whichinitiates a softphone connection between the user and the supportrepresentative that has been determined by the routing system based onthe previously acquired information. The flow proceeds to block 508where the user can speak with a live customer support representative.The method 500 illustrates only one example scenario in which a user mayestablish a softphone connection with a customer support representative,wherein a representative queue has been specifically selected based oninformation automatically acquired by the call routing system.

FIG. 6 shows how an organization can provide softphone based customersupport using the voice communication routing system 121 of FIG. 1 inaccordance with a specific embodiment of the present disclosure. Amethod 600 is similar to the method 500, however the method is presentedfrom the point of view of an organization's web server and an associatedcall routing system, such as the voice communication routing system 121of FIG. 1. The method 600 begins at block 601 where a web serverdetermines information about an intent of a user who is browsing anorganization's web site by monitoring the navigation history of the userand, optionally, prompting the user for additional information. Asdescribed above, other means can be employed to help ascertain theuser's intent. For example, browser cookies generated by a website canprovide information about recent or previous visitations by the user.Other information can include web site access-registration information,service or product codes previously entered at the website by the user,information retrieved from the user's computer, and the like.

The flow proceeds to block 602 where a Call Now Button can be displayedon the web page that is presently being viewed by the user. In anembodiment, display of the Call Now button can be conditional based onone or more factors. For example, softphone based customer support canbe restricted to a specific class of user, such as a customer possessinga product support contract. For another example, a web server can beconfigured to display a Call Now button only after determining that acall center queue or wait time is sufficiently short. Another criterionfor determining whether to display a Call Now button can be a networkbandwidth presently available between the customer and equipmentadministering the call center. For example, a minimum data rate of 64Kbs may be required to provide acceptable sound quality of a softphonevoice communication system. For still another example, an organizationmay chose to provide softphone based customer support based on strategicbusiness interests, call center backlog, and the like.

In the event that the customer's computer is not equipped with amicrophone, or the computer is otherwise not configured to support avoice communication application, a telephone number can be displayed atthe customer's computer and the customer can place a conventionaltelephone call for assistance. In an embodiment, a unique customeridentification code can be displayed at the customers browser display.The customer identification code can be associated with customerinformation that has been previously acquired by the call routingsystem. In the event that a customer must utilize a conventionaltelephone call to speak with a representative, the customer can recitethe identification code to a support representative, who can use thenumber to immediately receive the stored customer information. Thus, thesupport representative need not take time to collect information aboutthe caller during the telephone conversation.

The method 600 continues at block 603 where the web server determinesthat a user has clicked the Call Now button, in which case the flowproceeds to block 604 where the server displays a web page to facilitateinstalling and/or configuring a softphone application program to operateat the customer's computer, as described above. The flow proceeds toblock 605 where a softphone application user interface is displayed,such as the user interface shown at FIG. 3. The flow proceeds to block606 where the call routing system 121 can optionally solicit additionalinformation from the customer. For example, if further information isneeded to identify an appropriate service representative queue, thecustomer can be presented with an automated IVR system wherein thecustomer responds to vocal queries by clicking corresponding numericalbuttons at a keypad displayed by their web browser. In addition, the webserver can optionally retrieve system information from the customer'scomputer. For example, the call routing system 121 can retrieve a UniqueIdentifier that is stored at the customer's computer and use the code tofetch product or customer information from an information databasemaintained at the organization. Once the call routing system 121 hascollected enough information to properly route the customer's call, theflow proceeds to block 607 where a Call Now button is displayed at thecustomer's browser. The flow proceeds to block 608 where the callrouting system selects a preferred customer support representative queuebased on the previously acquired information. In addition, the servercan forward some or all of the acquired customer information to arepresentative at the selected queue. The flow proceeds to block 609where a communication channel is established between the customer andthe representative using the softphone application program. Aftercompleting the call, a follow-up email can be sent to the customer toprovide a record of the call and specifics like a session identificationor ticket number, to identify the agent or account manager that handledthe call, or to inquire whether the customer is satisfied with theservice. Moreover, the email can be provided with a Call Now buttonhaving a customized URL or other path such that the recipient mayreestablish voice contact with the same agent.

A situation may arise where the customer is unable to utilize asoftphone application or simply prefers to speak with a servicerepresentative using a conventional telephone. For example, thecustomer's computer may not be equipped with a microphone or headset, orthe customer may be intimidated by or otherwise uncomfortable with thesoftphone application. In such a situation, the customer can be offeredan option to receive a conventional telephone call initiated by thetelecom infrastructure and matched to the proper queue or agent. Asdescribed above, the voice communication routing system 121 canautomatically identify the customer's specific intent and identify anappropriate representative. In an embodiment, the routing system 121 canprompt the customer for a telephone number and forward the telephonenumber to the selected representative along with other acquired customerinformation that the representative can use to efficiently satisfy thecustomer's needs. In another embodiment, a call-back using aconventional telephone may be preferred in the event that allappropriate representatives are presently busy and an anticipated waittime exceeds a predetermined interval. In still another embodiment, acustomer can specify a desired time or date to receive a call from thesystem. In yet another embodiment, a Call Me button can be displayed ata web page adjacent to, or in place of, a Call Now button.

Because the customer support call is facilitated by a web browser or asimilar device specific software application, interaction between acustomer and a support representative can include more than voicecommunication using a softphone application. For example, a supportrepresentative can initiate display of information at the customer'scomputer, such as tutorial videos, options for downloading software orproduct documentation, pop-up display windows, and the like. Documentsand other information can be transferred from the representative to thecustomer or from the customer to the representative using push/pullsoftware applications available to the web browser. Alternativecommunication channels can be provided while a customer is connectedwith a service representative, such as text chat, email, and the like.For example, a caller can be provided with a telephone number andextension corresponding to the specific service representative to whomthe caller is speaking. In addition, targeted advertisements can bedisplayed at the customer's computer. During the time that a customer isconnected with a support representative via the softphone application,various browser controls and hyperlinks may be disabled so that thecustomer cannot accidentally navigate away from the softphoneapplication until the call is completed.

Much of the equipment and software infrastructure associated with aconventional call center can be leveraged to implement the call systemdisclosed herein. For example, an existing data center including packetsession boarder controllers (SBCs), session initiation protocol (SIP)trunk services, automated call distributor (ACD) systems, voice portalsystems, load balancers, and the like can be utilized withoutsignificant modification. For example, the addition of Flash MediaGateway (FMG) servers or similar devices can provide a bridge betweenexisting web servers and the call data center.

FIG. 7 shows a method 700 for selecting a preferred customer supportrepresentative queue to receive a softphone call based on automaticallydetermining a Unique Identifier in accordance with a specific embodimentof the present disclosure. Method 700 begins at block 701 where a callrouting system automatically obtains a Unique Identifier from acustomer's computer. For example, the voice communication routing system121 of FIG. 1 associated with an organization's web site can beconfigured to initiate communication with a customer's computer for thepurpose of retrieving a Unique Identifier, a device serial number, orthe like. The Unique Identifier can serve as an index into aninformation database maintained by the organization, the databaseproviding information about the customer's computer, information aboutthe customer, and the like. For example, the information database caninclude specific model and configuration information, softwareinstallations, system driver version numbers, as well as personalinformation about the customer such as their name, address, phonenumber, service contract identification, and the like.

In an embodiment, the value of a Unique Identifier can be automaticallyretrieved from a customer's computer system by the routing system 121using remote system management techniques. For example, the Windowsoperating system supports Windows Management Instrumentation (WMI),Windows Remote Assistance, ActiveX protocols, and other communicationprotocols for retrieving information from a user's computer. In anotherembodiment, an information handling device supporting a UnifiedExtensible Firmware Interface (UEFI) may provide mechanisms wherebyplatform firmware can be directly accessed by an interface provided bythe operating system associated with the customer's computer. It will beappreciated by those skilled in the art that much of the informationstored at the organization's database may be retrieved directly from thecustomer's computer. Furthermore, an organization may connect with acustomer's computer to update and verify information maintained at theorganization's database.

Having determined the customer's Unique Identifier, the flow proceeds toblock 702 where an appropriate customer service representative queue canbe selected based on the retrieved code. For example, the UniqueIdentifier may be a service code can be used to differentiate between aprivate consumer and a corporate account and route the softphone callaccordingly. For another example, service representatives may beclassified based on their experience or training with particularproducts, and a support representative best qualified to efficientlyprovide support to the customer can be selected based on the servicecode. Once a preferred representative queue has been selected, the flowproceeds to block 703 where voice communication can be establishedbetween the customer and a representative associated with the selectedqueue using a softphone application running at the customer's webbrowser.

FIG. 8 shows a method 800 for conditionally providing a customer with anopportunity to initiate a softphone call with a customer supportrepresentative in accordance with a specific embodiment of the presentdisclosure. Method 800 begins at block 801 where a customer navigatestheir web browser to a desired web page and a web server displays theselected web page at the customer's browser application. The flowproceeds to block 802 where the web server determines whether thecustomer has previously visited the web page. For example, the voicecommunication routing system 121 can evaluate the customer's navigationhistory, such as by interrogating browser cookies stored at thecustomer's computer, and determine whether the customer has previouslyviewed the web page presently displayed. If it is determined that thecustomer has previously viewed the web page, the flow proceeds from thedecision block 803 to block 804 where a Call Now button is displayed atthe web page currently being viewed by the customer. The customer canclick the Call Now button to initiate a softphone based call to acustomer service representative. If it is determined that the customerhas not previously viewed the web page, the flow proceeds to block 805where a Call Now button is not displayed at the web page currently beingviewed by the customer.

In this particular example, the navigation history of the customer isused to indicate the degree of interest that the customer may possess,or perhaps a frustration level, having failed to reach a web page tosatisfy their needs. Furthermore, a Call Now button can be conditionallydisplayed based on other criteria. For example, display of a Call Nowbutton may be suppressed if the routing system 121 determines that acall center queue exceeds a predetermined length, so as not to frustratethe customer with an excessive call hold time. For another example, aCall Now button can be displayed only after determining that a customerviewing the web page possesses a premium service contract. Anorganization may conditionally display a Call Now button based onstrategic business interests, for example a promotion or sale of aparticular product. For still another example, the call routing system121 can determine whether the customer's computer hardware, software, orcommunications network can support a softphone application. For example,the routing system 121 can determine whether the customer's networkconnection can support a transmission rate deemed necessary to provideacceptable sound quality. In an embodiment, the routing system 121 candetermine whether the customer's computer is equipped with a camera anddisplay a Call Now button accordingly.

As described above, the routing system 121 can automatically acquiresignificant amounts of information concerning the customer and theirintentions. Additional information useful for determining the customer'sintent can be acquired using directed questions or prompts presented tothe customer. The routing system 121 can provide these prompts to thecustomer using text messages, synthesized voice messages, prerecordedvoice messages, a menu system, and the like. Similarly, the routingsystem 121 can include voice recognition capabilities to interpretcustomer responses to the prompts. This acquired information can beevaluated and used by the routing system to determine whether a Call Nowbutton should be displayed at the web page presently displayed by thecustomer. For example, the Call Now button can be withheld until therouting system 121 has accumulated a prerequisite amount of informationabout the customer. In an embodiment, having provided a Call Now button,and in response to activation of the Call Now button by a customer, someor all of the acquired information can be used to route a customer'scall to an appropriate support representative queue. In anotherembodiment, some or all of the acquired information can be forwarded toa selected representative.

FIG. 9 shows a method 900 for assigning default values to a set ofrouting variables in accordance with a specific embodiment of thepresent disclosure. Method 900 begins at block 901 where routingvariables suitable for determining how to route a customer's softphonecall are identified. As describe above with reference to FIG. 4, each ofa set of variables can be associated with one of a set of respectivevalues. In the event that a value for a particular variable has not beenestablished, a temporary or default value for that variable can beassigned for the purpose of routing a softphone call to a preferredcustomer support representative queue. At block 902 a default value canbe associated with each routing variable based on a web page currentlydisplayed by a customer. For example, if a customer is currentlydisplaying a web page featuring consumer desktop gaming computers, therouting system 121 can assign values to each of a set of routingvariable assignments based on the displayed website:

-   -   Caller Type=Consumer    -   Product=Desktop    -   Product category=High Performance    -   Issue Category=Sales

In an embodiment, the routing system 121 can differentiate between avariable value that has been explicitly determined and a variable valuethat has been deduced based on anecdotal means. For example, aname-value pair can include syntax cues that distinguish betweeninformation provided directly by a customer or obtained by means of aUnique Identifier and interpreted or default values.

The flow proceeds to block 903 where a Call Now button is displayed atthe webpage currently displayed by the customer. At block 904 voicecommunication can be established between the customer and a preferredcustomer support representative, the representative associated with asupport queue selected based on the value of one or more routingvariables. By automatically determining some or all of a customer'sintentions or needs, a service representative can be selected to receivethe softphone call that is best qualified to address those needs. As aresult, the customer's needs are addressed efficiently and with greatersatisfaction.

FIG. 10 shows an information handling system 1000 capable ofadministering each of the specific embodiments of the presentdisclosure. The information handling system 1000 can represent thepersonal computer 110 of FIG. 1, the web server 120, or another dataprocessing device associated with the voice communication routing system121. The information handling system 1000 may include a processor 1002such as a central processing unit (CPU), a graphics processing unit(GPU), or both. Moreover, the information handling system 1000 caninclude a main memory 1004 and a static memory 1006 that can communicatewith each other via a bus 1008. As shown, the information handlingsystem 1000 may further include a video display unit 1010, such as aliquid crystal display (LCD), an organic light emitting diode (OLED), aflat panel display, a solid state display, or a cathode ray tube (CRT).Additionally, the information handling system 1000 may include an inputdevice 1012, such as a keyboard, and a cursor control device 1014, suchas a mouse. The information handling system 1000 can also include a diskdrive unit 1016, a signal generation device 1018, such as a speaker orremote control, and a network interface device 1020. The informationhandling system 1000 can represent a server device whose resources canbe shared by multiple client devices, or it can represent an individualclient device, such as a desktop personal computer.

For purposes of this disclosure, an information handling system mayinclude any instrumentality or aggregate of instrumentalities operableto compute, classify, process, transmit, receive, retrieve, originate,switch, store, display, manifest, detect, record, reproduce, handle, orutilize any form of information, intelligence, or data for business,scientific, control, or other purposes. For example, an informationhandling system may be a personal computer, a network storage device, orany other suitable device and may vary in size, shape, performance,functionality, and price. The information handling system may includerandom access memory (RAM), one or more processing resources such as aCPU or hardware or software control logic, ROM, and/or other types ofnonvolatile memory. Additional components of the information handlingsystem may include one or more disk drives, one or more network portsfor communicating with external devices as well as various input andoutput (I/O) devices, such as a keyboard, a mouse, and a video display.The information handling system may also include one or more busesoperable to transmit communications between the various hardwarecomponents.

The information handling system 1000 can include a set of instructionsthat can be executed to cause the computer system to perform any one ormore of the methods or computer based functions disclosed herein. Thecomputer system 1000 may operate as a standalone device or may beconnected such as using a network, to other computer systems orperipheral devices.

In a networked deployment, the information handling system 1000 mayoperate in the capacity of a server or as a client user computer in aserver-client user network environment, or as a peer computer system ina peer-to-peer (or distributed) network environment. The informationhandling system 1000 can also be implemented as or incorporated intovarious devices, such as a personal computer (PC), a tablet PC, aset-top box (STB), a PDA, a mobile device, a palmtop computer, a laptopcomputer, a desktop computer, a communications device, a wirelesstelephone, a land-line telephone, a control system, a camera, a scanner,a facsimile machine, a printer, a pager, a personal trusted device, aweb appliance, a network router, switch or bridge, or any other machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. In a particularembodiment, the computer system 600 can be implemented using electronicdevices that provide voice, video or data communication. Further, whilea single information handling system 1000 is illustrated, the term“system” shall also be taken to include any collection of systems orsub-systems that individually or jointly execute a set, or multiplesets, of instructions to perform one or more computer functions.

The disk drive unit 1016 may include a computer-readable medium 1022 inwhich one or more sets of instructions 1024 such as software, can beembedded. Further, the instructions 1024 may embody one or more of themethods or logic as described herein. In a particular embodiment, theinstructions 1024 may reside completely, or at least partially, withinthe main memory 1004, the static memory 1006, and/or within theprocessor 1002 during execution by the information handling system 1000.The main memory 1004 and the processor 1002 also may includecomputer-readable media. The network interface device 1020 can provideconnectivity to a network 1026, e.g., a wide area network (WAN), a localarea network (LAN), or other network.

In an alternative embodiment, dedicated hardware implementations such asapplication specific integrated circuits, programmable logic arrays andother hardware devices can be constructed to implement one or more ofthe methods described herein. Applications that may include theapparatus and systems of various embodiments can broadly include avariety of electronic and computer systems. One or more embodimentsdescribed herein may implement functions using two or more specificinterconnected hardware modules or devices with related control and datasignals that can be communicated between and through the modules, or asportions of an application-specific integrated circuit. Accordingly, thepresent system encompasses software, firmware, and hardwareimplementations.

In accordance with various embodiments of the present disclosure, themethods described herein may be implemented by software programsexecutable by a computer system. Further, in an exemplary, non-limitedembodiment, implementations can include distributed processing,component/object distributed processing, and parallel processing.Alternatively, virtual computer system processing can be constructed toimplement one or more of the methods or functionality as describedherein.

The present disclosure contemplates a computer-readable medium thatincludes instructions 1024 or receives and executes instructions 1024responsive to a propagated signal, so that a device connected to anetwork 1026 can communicate voice, video or data over the network 1026.Further, the instructions 1024 may be transmitted or received over thenetwork 1026 via the network interface device 1020.

While the computer-readable medium is shown to be a single medium, theterm “computer-readable medium” includes a single medium or multiplemedia, such as a centralized or distributed database, and/or associatedcaches and servers that store one or more sets of instructions. The term“computer-readable medium” shall also include any medium that is capableof storing, encoding, or carrying a set of instructions for execution bya processor or that cause a computer system to perform any one or moreof the methods or operations disclosed herein.

In a particular non-limiting, exemplary embodiment, thecomputer-readable medium can include a solid-state memory such as amemory card or other package that houses one or more non-volatileread-only memories. Further, the computer-readable medium can be arandom access memory or other volatile re-writable memory. Additionally,the computer-readable medium can include a magneto-optical or opticalmedium, such as a disk or tapes or other storage device to storeinformation received via carrier wave signals such as a signalcommunicated over a transmission medium. Furthermore, a computerreadable medium can store information received from distributed networkresources such as from a cloud-based environment. A digital fileattachment to an e-mail or other self-contained information archive orset of archives may be considered a distribution medium that isequivalent to a tangible storage medium. Accordingly, the disclosure isconsidered to include any one or more of a computer-readable medium or adistribution medium and other equivalents and successor media, in whichdata or instructions may be stored.

Information handling systems provide fundamental services in nearlyevery aspect of business. For example, information handling systems canbe used by businesses to automate manufacturing processes, implementproduct design tools, support marketing and sales, and the like.Information handling systems, such as personal computers, mobilecommunication devices, and the like, are equally prevalent in ourpersonal lives. It is only natural that an increasing amount of commerceis being conducted via information handling systems. Today, an internetweb site may provide the primary interface between a business and theircustomers. While a great deal of business activity can be automated,there will always remain the need for customers to speak directly with apersonal representative of an organization. Electronic mailcorrespondence may be sufficient in many cases, but the highest qualityof customer service is typically provided by direct communication with arepresentative via a telephone. However, the cost and logistics ofmaintaining human support personnel at a large business or corporationcan be considerable. As a result, businesses have adopted one or morepractices to address this problem. One solution is to out-sourcecustomer support responsibility to a customer service call-center, whichis often located overseas to reduce manpower costs. Another commonsolution is to transfer customer calls to a recording system or toanother form of automated reception service.

The systems and methods disclosed herein provide significant benefitswhen compared to conventional techniques. For example, in existingenterprises, customer calls are typically routed to an appropriatecustomer support representative only after soliciting information fromthe customer to determine the nature of the customer's intention. Forexample, customer calls may be answered by a pre-recorded message systemconfigured to prompt the customer to select specific options from amenu. An IVR system may allow a user to select from a predetermined setof options by speaking words, simple phrases, or numbers, or by pressingkeypad numbers on their telephone that correspond to desired options.The customer's call can then be routed to a human operator or to a voicemail box based on the customer's responses to the options provided bythe automated system. Unfortunately, this process can be both tediousand ultimately unsatisfactory to the customer. For example, in a typicalbusiness a customer may be expected to provide responses toapproximately seven individual questions before the IVR system canadequately determine the customer's intent and subsequently route thecustomer's call to a representative best able to provide satisfactorysupport.

There are considerable benefits of the disclosed system over currentpractices. The traditional IVR selection procedure can be eliminated orthe number of questions required to fully determine the customer'sintent can be significantly reduced because this information can bederived through multiple techniques prior to the time that a customerinitiates a call to a support representative. By quickly directing thecustomer to an ideal representative, the customer's experience andsatisfaction is greatly improved. Furthermore, by reducing the averagehold time (AHT) and by increasing the likelihood of providing first callresolution (FCR) of the customer's needs, costs associated with customerservice can be reduced.

Placement of a Call Now button is not limited to the body of web page ordisplay interface provided by a device specific software application.For example, a Call Now button can be incorporated at an Internet searchengine, at a social media site, within a mobile device application,banner advertisements or pop-up display windows, Email documents andEmail viewers, interactive television programs, and the like. Inresponse to selection of the Call Now button by a user, a call can berouted to a selected service representative based fully or in part oninformation determined by the voice communication routing system 121.

Although only a few exemplary embodiments have been described in detailabove, those skilled in the art will readily appreciate that manymodifications are possible in the exemplary embodiments withoutmaterially departing from the novel teachings and advantages of theembodiments of the present disclosure. Accordingly, all suchmodifications are intended to be included within the scope of theembodiments of the present disclosure as defined in the followingclaims. In the claims, means-plus-function clauses are intended to coverthe structures described herein as performing the recited function andnot only structural equivalents, but also equivalent structures.

What is claimed is:
 1. A method of routing a voice communication from aweb page to one of a plurality of queues, comprising: determiningwhether a user has previously visited the web page by interrogatingbrowser cookies; if the user has not previously visited the web page ora delay at one or more of the queues equals or exceeds a threshold basedupon an excessive call hold time, sending instructions to display theweb page without a button to initiate the voice communication, whereinthe user is unable to join any of the queues without use of the button;if the user has previously visited the web page and the delay at the oneor more of the queues does not exceed a threshold, sending instructionsto a server to display the button such that by selecting the button thevoice communication is initiated; and routing the voice communication toone of the queues at least in part based on an identifier that uniquelyidentifies an information handling system that displays the web page;wherein the identifier is obtained from a file stored on the informationhandling system, and a manufacturer of the information handling systemassigned the identifier to the information handling system.
 2. Themethod of claim 1 wherein the instructions comprise HTML code.
 3. Themethod of claim 1 further comprising: determining if the voicecommunication pertains to one of sales, technical support and customercare.
 4. The method of claim 1 wherein the voice communication is avoice over Internet protocol call.
 5. The method of claim 1 furthercomprising determining bandwidth available for the voice communication.6. The method of claim 1 further comprising detecting whether aninformation handling system that displays the web page includes amicrophone.
 7. The method of claim 1 further comprising detectingwhether an information handling system that displays the web pageincludes a camera.
 8. The method of claim 1 wherein the threshold is alength of one or more of the queues.
 9. The method of claim 1 whereinthe threshold is a call hold time at one or more of the queues.
 10. Themethod of claim 1 further comprising: testing whether an informationhandling system that displays the web page supports a softphoneapplication; and not sending instructions to display the button basedupon determining that the information handling system of the user doesnot support a softphone application.
 11. A method of routing a voicecommunication from a user at an information handling system to one of aplurality of queues, comprising: determining whether a certain promotionor sale of a particular product is appropriate for the user; if thepromotion or sale of the particular product is not appropriate for theuser, then using a server to generate the web page without a buttoncapable of initiating the voice communication, wherein the user isunable to join any of the queues without use of the button; and if thepromotion or sale of the particular product is appropriate for the user,then using the server to generate the web page with the button; androuting the voice communication to one of the queues at least in partbased on an identifier that uniquely identifies the information handlingsystem that displays the web page; wherein the identifier is obtainedfrom a file stored on the information handling system, and amanufacturer of the information handling system assigned the identifierto the information handling system.
 12. The method of claim 11 furthercomprising: determining if the voice communication pertains to one ofsales, technical support and customer care.
 13. The method of claim 11further comprising generating the web page without the button based upona delay at one or more of the queues exceeding a threshold.
 14. Themethod of claim 11 further comprising: testing whether an informationhandling system that displays the web page supports a softphoneapplication; and not sending instructions to display the button basedupon determining that the information handling system of the user doesnot support a softphone application.
 15. A system for routing a voicecommunication from a web page to one of a plurality of queues,comprising: a server to determine whether a certain promotion or sale ofa particular product is appropriate for a user; wherein if the promotionor sale of the particular product is not appropriate for the user, thenthe server generates the web page without a button capable of initiatingthe voice communication, wherein the user is unable to join any of thequeues without use of the button; wherein if the promotion or sale of aparticular product is appropriate for the user, then the servergenerates the web page with the button such that by selecting the buttonthe voice communication is initiated; and wherein the server makes itsdetermination of the appropriateness based at least in part on anidentifier that uniquely identifies an information handling system thatdisplays the web page, wherein the identifier is obtained from a filestored on the information handling system, and a manufacturer of theinformation handling system assigned the identifier to the informationhandling system.
 16. The system of claim 15, wherein: the server makesits determination of the appropriateness based at least in part on thevalues of the routing variables in a database table.
 17. The system ofclaim 15, wherein: the server selects which particular product topromote based at least in part on the values of the routing variables ina database table.